감마 분포

감마 분포(Gamma distribution)도 베타 분포(Beta distribution)처럼 모수의 베이지안 추정에 사용된다. 다만 베타 분포가 0부터 1사이의 값을 가지는 모수를 베이지안 방법으로 추정하는데 사용되는 것과 달리 감마 분포는 0부터 무한대의 값을 가지는 양수 값을 추정하는데 사용된다.

[[school_notebook:70a372b9c14a4e8d9d49737f0b5a3c97]]

감마 분포의 확률 밀도 함수는 a와 b라는 두 개의 모수(parameter)를 가지며 수학적으로 다음과 같이 정의된다.

$$ \text{Gam}(x;a,b) = \frac{1}{\Gamma(a)} b^a x^{a-1}e^{-bx} $$

이 식에서

$$ \Gamma(a) = \int_0^\infty x^{a-1} e^{-x}\, dx $$

베타 분포의 확률 밀도 함수는 모수 $a$, $b$의 값에 따라 다음과 같은 형상을 가진다.

SciPy의 stats 서브패키지에서 제공하는 gamma 클래스는 모수 $b=1$로 고정되어 $a$ 값만 설정할 수 있다. $b$를 바꾸려면 $x$값 스케일과 계수를 수동으로 설정하여야 한다.


In [33]:
xx = np.linspace(0, 10, 100)
plt.subplot(221)
plt.plot(xx, sp.stats.gamma(9).pdf(xx))
plt.ylim(0, 0.4)
plt.title("(A) a=9, b=1, mode=8")
plt.subplot(222)
plt.plot(xx, sp.stats.gamma(6).pdf(xx))
plt.ylim(0, 0.4)
plt.title("(B) a=6, b=1, mode=5")
plt.subplot(223)
plt.plot(xx, sp.stats.gamma(3).pdf(xx))
plt.ylim(0, 0.4)
plt.title("(C) a=3, b=1, mode=2")
plt.subplot(224)
plt.plot(xx, sp.stats.gamma(2).pdf(xx))
plt.ylim(0, 0.4)
plt.title("(D) a=2, b=1, mode=1")
plt.tight_layout()
plt.show()


위 그림이 베이지안 추정 결과라면 각각은 모수에 대해 다음과 같이 추정한 것과 같다.

  • (A): 모수값이 8일 가능성이 가장 크다. (정확도 아주 낮음)
  • (B): 모수값이 5일 가능성이 가장 크다. (정확도 낮음)
  • (C): 모수값이 2일 가능성이 가장 크다. (정확도 높음)
  • (D): 모수값이 1일 가능성이 가장 크다. (정확도 아주 높음)

베타 분포의 기댓값, 최빈값, 분산은 각각 다음과 같다.

  • 기댓값 $$ \text{E}[X] = \dfrac{a}{b}$$

  • 최빈값 $$ \dfrac{a-1}{b}$$

  • 분산 $$\text{Var}[X] = \dfrac{a}{b^2}$$